1. Technical Field
This invention generally relates to object-oriented programming and more specifically relates to an object-oriented model for re-engineering business data processing systems.
2. Background Art
The development of the EDVAC computer system of 1948 is often cited as the beginning of the computer era. Since that time, computer systems have evolved into extremely sophisticated devices, and computer systems may be found in many different settings. Computer systems typically include a combination of hardware (e.g., semiconductors, circuit boards, etc.) and software (e.g., computer programs). As advances in semiconductor processing and computer architecture push the performance of the computer hardware higher, more sophisticated computer software has evolved to take advantage of the higher performance of the hardware, resulting in computer systems today that are much more powerful than just a few years ago.
Computer systems typically include operating system software that controls the basic function of the computer, and one or more software application programs that run under the control of the operating system to perform desired tasks. For example, a typical IBM Personal Computer may run the OS/2 operating system, and under the control of the OS/2 operating system, a user may execute an application program, such as a word processor. As the capabilities of computer systems have increased, the application software programs designed for high performance computer systems have become extremely powerful. Additionally, software development costs have continued to rise because more powerful and complex programs take more time, and hence more money, to produce.
One way to improve the functionality of application software programs while reducing the associated development costs is to use object-oriented programming concepts. The goal of using object-oriented programming is to create small, reusable sections of program code known as "objects" that can be quickly and easily combined and re-used to create new programs. This is similar to the idea of using the same set of building blocks again and again to create many different structures. The modular and re-usable aspects of objects will typically speed development of new programs, thereby reducing the costs associated with the development cycle. In addition, by creating and re-using a group of well-tested objects, a more stable, uniform, and consistent approach to developing new computer programs can be achieved.
Typically, in the object-oriented model, object-oriented software programs or processes create and use specially designed objects to accomplish the required or desired goals of the application software. Most software processes will create an object or group of objects and then use those objects during the lifetime of that particular process. The objects that accomplish the software processes typically interact with other objects as part of the process. For example, a "client object" is an object that will request a certain service from another object, known as a "server object." The server object will receive the request from the client object and take appropriate steps to fill the client object's request.
In order to adopt an object-oriented model for a particular business environment, the business will generally use various object-oriented analysis techniques to abstract, design, and re-engineer their business data process system. Organizing business decisions and procedures according to the object model has several benefits. First, the business abstraction process produces conceptually understandable models with a flexible architecture that can more easily evolve with the changes experienced in many business environments. Secondly, organizing business functions according to the object model provides a certain amount of modularization that can provide new efficiencies by grouping similar or related business functions with one another. After completing this abstraction and analysis modeling process, the business can create and program a computer system that brings the business models to life, thereby enhancing productivity and increasing efficiency.
While the introduction and implementation of object-oriented programming models has been very beneficial in many cases, not all business organizations have been able to adopt object-oriented models and programming solutions. There are several obstacles to implementing object-oriented solutions in certain business environments. For example, even if the function of a given business can be successfully abstracted and approximated using the object-oriented model, many business organizations simply cannot afford to "start from scratch" and recreate the existing business functionality in a completely new object-oriented hardware/software environment. The existing nonobject-oriented computer system may have developed and evolved over a period of many years and the business will typically have a significant investment, both in time and money, in the system. These systems are often termed "legacy" systems and may include databases and other software applications that must continue to be used.
In addition, in many systems, the business logic portion of the system is closely and inextricably tied to the underlying database structures containing the business information. This means that whenever the underlying structure of the database or the data storage components are modified, the business logic portion must also be changed or the system may cease to function as intended.
What is needed, therefore, is a way to apply an object-oriented model to existing computer systems in various business environments without requiring extensive reworking of the business logic used to model the business or without changing the underlying data structures. Without providing a mechanism that adapts object models to existing business environments, many business will be forced to continue using out-dated solutions which are increasingly inefficient and undesirable.